﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MetaCollection.ContentService.Http
{
	/// <summary>
	/// 5xx Server Error
	/// ------------------------------------
	/// The server failed to fulfil an apparently valid request. Response status codes beginning with the digit "5" indicate
	/// cases in which the server is aware that it has encountered an error or is otherwise incapable of performing the
	/// request. Except when responding to a HEAD request, the server should include an entity containing an explanation
	/// of the error situation, and indicate whether it is a temporary or permanent condition. Likewise, user agents should
	/// display any included entity to the user. These response codes are applicable to any request method.	/// </summary>
	public enum ServerErrorStatus
	{
		None = 0,
		/// <summary>
		/// A generic error message, given when no more specific message is suitable.
		/// </summary>
		InternalServerError = 500,
		/// <summary>
		/// The server either does not recognise the request method, or it lacks the ability to fulfil the request.
		/// </summary>
		NotImplemented = 501,
		/// <summary>
		/// The server was acting as a gateway or proxy and received an invalid response from the upstream server.
		/// </summary>
		BadGateway = 502,
		/// <summary>
		/// The server is currently unavailable (because it is overloaded or down for maintenance). Generally,
		/// this is a temporary state.
		/// </summary>
		ServiceUnavailable = 503,
		/// <summary>
		/// The server was acting as a gateway or proxy and did not receive a timely request from the upstream server.
		/// </summary>
		GatewayTimeout = 504,
		/// <summary>
		/// The server does not support the HTTP protocol version used in the request.
		/// </summary>
		HttpVersionNotSupported = 505,
		/// <summary>
		/// Transparent content negotiation for the request, results in a circular reference. (RFC 2295)
		/// </summary>
		VariantAlsoNegotiates = 506,
		/// <summary>
		/// (WebDAV) (RFC 4918)
		/// </summary>
		InsufficientStorage = 507,
		/// <summary>
		/// This status code, while used by many servers, is not specified in any RFCs. (Apache bw/limited extension)
		/// </summary>
		BandwidthLimitExceeded = 509,
		/// <summary>
		/// Further extensions to the request are required for the server to fulfil it.  (RFC 2774)
		/// </summary>
		NotExtended = 510
	}
}
